package com.example.demo.service;

import com.example.demo.entity.Articleinfo;
import com.example.demo.mapper.ArticleMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class ArticleService {

    @Resource
    private ArticleMapper articleMapper;

    /**
     * 返回用户发表的文章总数
     */
    public Integer getArtCountBYUid(Integer uid) {
        return articleMapper.getArtCountBYUid(uid);
    }

    /**
     *  查询用户发表的文章列表.
     */
    public List<Articleinfo> getMyList(Integer uid) {
        return articleMapper.getMyList(uid);
    }

    /**
     *  删除用户列表的文章
     *  此处的 id 是文章id, 不是用户id.
     */
    public Integer delete(Integer id, Integer uid) {
        return articleMapper.delete(id, uid);
    }

    /**
     *  查询文章详情信息
     */
    public Articleinfo getDetail(Integer id) {
        return articleMapper.getDetail(id);
    }

    /**
     *  实现文章阅读量+1
     */
    public Integer updRCount(Integer id) {
        return articleMapper.updateRCount(id);
    }

    /**
     *  添加文章
     */
    public Integer add(Articleinfo articleinfo) {
        return articleMapper.add(articleinfo);
    }

    /**
     *  修改文章.
     */
    public Integer update(Articleinfo articleinfo) {
        return articleMapper.update(articleinfo);
    }

    /**
     * 11. 文章公共列表页(分页)
     */
    public List<Articleinfo> getListByPage(Integer psize, Integer offsize) {
        return articleMapper.getListByPage(psize, offsize);
    }

    /**
     *  12. 获取总的文章总数
     */
    public Integer getTotalCount() {
        return articleMapper.getTotalCount();
    }

    /**
     *  保存为草稿
     */
    public Integer addDraftList(Articleinfo articleinfo) {
        return articleMapper.addDraftList(articleinfo);
    }

    /**
     *  修改草稿
     */
    public Integer updateDraft(Articleinfo articleinfo) {
        return articleMapper.updateDraft(articleinfo);
    }
    /**
     *  查询草稿文章
     */
    public List<Articleinfo> getDraftList(Integer uid, Integer state) {
        return articleMapper.getDraftList(uid, state);
    }

    /**
     *  查询文章草稿数量
     */
    public Integer getDraftCount(Integer uid, Integer state) {
        return articleMapper.getDraftCount(uid, state);
    }

    /**
     *  获取文章点赞数
     */
    public Integer getPrizeCount(Integer id) {
        return articleMapper.getPrizeCount(id);
    }

    /**
     *  增加点赞数
     */
    public void updPrizeCount(Integer id) {
        articleMapper.updPrizeCount(id);
    }

    /**
     *  减少点赞数
     */
    public void incPrizeCount(Integer id) {
        articleMapper.incPrizeCount(id);
    }

    /**
     *  查询单独的一篇文章
     */
    public Articleinfo getArticle(Integer id) {
        return articleMapper.getArticle(id);
    }

    /**
     *  查询用户点赞列表
     */
    public List<Articleinfo> getUpvoteArtList(Integer id) {
        return articleMapper.getUpvoteArtList(id);
    }

    /**
     *  查询用户收藏的文章数目
     */
    public Integer selUserUpvoteCount(Integer id) {
        return articleMapper.selUserUpvoteCount(id);
    }

    /**
     *  根据标题查询文章列表
     */
    public List<Articleinfo> searchListByTitle(String title) {
        return articleMapper.searchListByTitle(title);
    }

    /**
     *  根据作者查询
     */
    public List<Articleinfo> searchListByNickName(String nickname) {
        return articleMapper.searchListByNickName(nickname);
    }
}
